package cn.wolfcode.p2p.base.mapper;

import cn.wolfcode.p2p.base.domain.LoginInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface LoginInfoMapper {
    int insert(LoginInfo record);

    LoginInfo selectByPrimaryKey(Long id);

    int updateByPrimaryKey(LoginInfo record);

    /**
     * 根据用户名查询数据库
     * @param username 用户名
     * @return         返回个数
     */
    int checkUsername(String username);

    /**
     * 登陆方法
     * @param username
     * @param password
     * @param userType
     * @return
     */
    LoginInfo login(@Param("username") String username,
                    @Param("password") String password,
                    @Param("userType") int userType);

    /**
     * 根据当前传进的用户名检查其账号信息
     * @param username 用户名
     * @param userType
     * @return
     */
    LoginInfo getUsername(@Param("username") String username,
                          @Param("userType") int userType);

    /**
     * 根据用户信息更新数据
     * @param userInfo
     */
    void updateByUserInfo(LoginInfo userInfo);

    /**
     *  根据用户类型查询是否有管理员
     * @param usertypeAdmin
     * @return
     */
    int selectCountByUserType(int usertypeAdmin);

    /**
     * 查询预约客服的集合
     * @return
     */
    List<LoginInfo> selectIsAuditorList();

    /**
     * 自动补全功能
     * @param username
     * @param userType
     * @return
     */
    List<Map<String,Object>> videoAuthAuto(@Param("username") String username,
                                           @Param("userType") int userType);
}